{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#本章需导入的模块\n",
    "import numpy as np\n",
    "from numpy import random\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "import warnings\n",
    "warnings.filterwarnings(action = 'ignore')\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif']=['SimHei']  #解决中文显示乱码问题\n",
    "plt.rcParams['axes.unicode_minus']=False\n",
    "from sklearn.datasets import make_classification,make_circles,make_regression\n",
    "from sklearn.model_selection import train_test_split,KFold\n",
    "import sklearn.neural_network as net\n",
    "import sklearn.linear_model as LM\n",
    "from scipy.stats import multivariate_normal\n",
    "from sklearn.metrics import r2_score,mean_squared_error,classification_report\n",
    "from sklearn import svm\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N=100\n",
    "X,Y=make_classification(n_samples=N,n_features=2,n_redundant=0,n_informative=2,class_sep=1,random_state=1,n_clusters_per_class=1)\n",
    "\n",
    "plt.figure(figsize=(9,6))\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X,Y,train_size=0.85, random_state=123)\n",
    "markers=['^','o']\n",
    "for k,m in zip([1,0],markers):\n",
    "    plt.scatter(X_train[Y_train==k,0],X_train[Y_train==k,1],marker=m,s=50)\n",
    "plt.title(\"训练集中样本观测点的分布\")\n",
    "plt.xlabel(\"X1\")\n",
    "plt.ylabel(\"X2\")\n",
    "plt.grid(True,linestyle='-.')\n",
    "plt.show()   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "超平面的常数项b： [0.00427528]\n",
      "超平面系数W： [[-1.75478826  0.07731007]]\n",
      "支持向量的个数： [1 2]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N=100\n",
    "X,Y=make_classification(n_samples=N,n_features=2,n_redundant=0,n_informative=2,class_sep=1,random_state=1,n_clusters_per_class=1)\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X,Y,train_size=0.85, random_state=123)\n",
    "X1,X2= np.meshgrid(np.linspace(X_train[:,0].min(),X_train[:,0].max(),500),np.linspace(X_train[:,1].min(),X_train[:,1].max(),500))\n",
    "X0=np.hstack((X1.reshape(len(X1)*len(X2),1),X2.reshape(len(X1)*len(X2),1)))\n",
    "modelSVC=svm.SVC(kernel='linear',random_state=123,C=2) #modelSVC=svm.LinearSVC(C=2,dual=False)\n",
    "modelSVC.fit(X_train,Y_train)\n",
    "print(\"超平面的常数项b：\",modelSVC.intercept_)\n",
    "print(\"超平面系数W：\",modelSVC.coef_)\n",
    "print(\"支持向量的个数：\",modelSVC.n_support_)\n",
    "Y0=modelSVC.predict(X0)\n",
    "plt.figure(figsize=(6,4)) \n",
    "plt.scatter(X0[np.where(Y0==1),0],X0[np.where(Y0==1),1],c='lightgray')\n",
    "plt.scatter(X0[np.where(Y0==0),0],X0[np.where(Y0==0),1],c='mistyrose')\n",
    "for k,m in [(1,'^'),(0,'o')]:\n",
    "    plt.scatter(X_train[Y_train==k,0],X_train[Y_train==k,1],marker=m,s=40)\n",
    "    plt.scatter(X_test[Y_test==k,0],X_test[Y_test==k,1],marker=m,s=40,c='',edgecolors='g')\n",
    "\n",
    "plt.scatter(modelSVC.support_vectors_[:,0],modelSVC.support_vectors_[:,1],marker='o',c='b',s=120,alpha=0.3)\n",
    "plt.xlabel(\"X1\")\n",
    "plt.ylabel(\"X2\")\n",
    "plt.title(\"线性可分下的支持向量机最大边界超平面\")\n",
    "plt.grid(True,linestyle='-.')\n",
    "plt.show()   \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "代码说明：\n",
    "（1）第1至5行：生成同8.6.1相同的模拟数据。采用旁置法将数据集划分为训练机和测试集。为绘制分类边界准备数据：为在训练集两个输入变量取值范围内的250000个样本观测点。\n",
    "（2）第6，7行：建立完全线性可分下的支持向量分类机，并拟合训练数据。\n",
    "不同场景下的支持向量分类均可通过函数svm.SVC ()实现。其中指定参数kernel='linear'即为线性可分场景。参数C为（式8.13）中的C。\n",
    "（3）第8至10行：输出最大边界超平面参数以及支持向量的个数。这里分别在两个类别中找到了1和2个支持向量。最大边界超平面参数以及支持向量的个数依次存储在模型对象的.intercept_、.coef_和.n_support_属性中。\n",
    "（4）第11行：基于最大边界超平面预测250000个样本观测的类别。\n",
    "（5）第13，14行：绘制两个类别区域。指定灰色为1类区域，粉色为0类区域。两区域的边界即为最大边界超平面。\n",
    "（6）第15至17行：将样本观测点添加到图中。落入灰色区域的样本观测点将预测为1类，落入粉色区域的将预测为0类。\n",
    "（7）第19行：在图中标记出支持向量。支持向量的坐标存储在模型对象的.support_vectors_属性中。\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
